package priv.conceit.study.book.multithread.chapter8.threadpool;

/**
 * study
 * 线程池接口
 *
 * @author Conceit
 * 8/3/2022 增加方法
 * @since 1.0.0, 8/3/2022
 */
public interface ThreadPool {


	/**
	 * execute 提交任务到线程池
	 *
	 * @param runnable
	 * @return void
	 * @author conceit
	 * @date 8/3/2022 上午10:17
	 */
	void execute(Runnable runnable);


	/**
	 * shutdown 关闭线程池
	 *
	 * @param
	 * @return void
	 * @author conceit
	 * @date 8/3/2022 上午10:18
	 */
	void shutdown();


	/**
	 * 获取线程池初始化大小
	 * @return
	 */
	int getInitSize();

	/**
	 * 获取线程池最大数量
	 * @return
	 */
	int getMaxSize();

	/**
	 * 获取线程池核心线程数量
	 * @return
	 */
	int getCoreSize();

	/**
	 * 获取等待队列的大小
	 * @return
	 */
	int getQueueSize();

	/**
	 * 获取线程池活跃的线程数量
	 * @return
	 */
	int getActiveSize();

	/**
	 * 查看线程池是否已被Shutdown
	 * @return
	 */
	boolean isShutdown();


}
